home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / nt / kmglos.zip / TOC3.TTY < prev    next >
Text File  |  1993-01-29  |  5KB  |  133 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.              Contents             Contents
  12.              Chapter 3 - NT Objects and Support for Drivers             Chapter 3 - NT Objects and Support for Drivers
  13.  
  14.  
  15.              3.1    NT Executive Components and NT Drivers............3-1
  16.  
  17.              3.2    Device Objects and Device Extensions..............3-7
  18.                3.2.1    Defining Device Extensions....................3-9
  19.                3.2.2    Creating a Device Object and Device Extension3-10
  20.                3.2.3    Initializing Driver-specific Device Objects and
  21.                  Device Extensions...................................3-11
  22.                3.2.4    Setting Up Access to User Buffers............3-13
  23.                  3.2.4.1    Using Buffered I/O.......................3-13
  24.                  3.2.4.2    Using Direct I/O.........................3-15
  25.                  3.2.4.3    Using Neither Direct Nor Buffered I/O....3-18
  26.  
  27.              3.3     Adapter Objects and DMA.........................3-20
  28.                3.3.1    Map Registers................................3-21
  29.                3.3.2    Getting an NT Adapter Object.................3-23
  30.                3.3.3    Splitting Transfer Requests..................3-26
  31.                3.3.4    Using System DMA.............................3-28
  32.                  3.3.4.1    Packet-based System DMA..................3-28
  33.                  3.3.4.2    Common-buffer System DMA.................3-34
  34.                3.3.5    Using Busmaster DMA..........................3-38
  35.                  3.3.5.1    Packet-based DMA.........................3-39
  36.                  3.3.5.2    Common-buffer DMA........................3-46
  37.  
  38.              3.4    Controller Objects...............................3-48
  39.                3.4.1    Creating a Controller Object with a Controller
  40.                  Extension...........................................3-49
  41.                3.4.2    Allocating the Controller for I/O Operations.3-51
  42.  
  43.              3.5    Interrupt Objects................................3-54
  44.                3.5.1    Getting a System-assigned Interrupt Vector, DIRQL,
  45.                  and Processor Mask..................................3-54
  46.                3.5.2    Registering an ISR...........................3-56
  47.  
  48.              3.6    DPC Objects......................................3-59
  49.                3.6.1    Registering and Queueing a DpcForIsr Routine.3-59
  50.                3.6.2    Registering and Queueing a CustomDpc Routine.3-62
  51.  
  52.              3.7    Timer Objects with Associated DPCs...............3-64
  53.                3.7.1    Registering and Enabling an IoTimer Routine..3-65
  54.                3.7.2    Registering and Queueing a CustomTimerDpc Routine     
  55.                  3-67
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.         3.8    Device Queue Objects and Interlocked Queues......3-70
  76.           3.8.1    Setting up a Device Queue Object and Queueing IRPs    
  77.             3-71
  78.           3.8.2    Setting up an Interlocked Queue and Queueing IRPs     
  79.             3-73
  80.  
  81.         3.9    Kernel Dispatcher Objects for Drivers............3-76
  82.           3.9.1    Timer Objects................................3-78
  83.           3.9.2    Event Objects................................3-80
  84.           3.9.3    Semaphore Objects............................3-83
  85.           3.9.4    Mutex Objects................................3-86
  86.  
  87.  
  88.         Figures - Chapter 3        Figures - Chapter 3
  89.  
  90.           Figure 3.1    Executive Component Support for Drivers..3-2
  91.           Figure 3.2    Device Object............................3-8
  92.           Figure 3.3    Buffered I/O for User Buffers...........3-14
  93.           Figure 3.4    Direct I/O on User Buffers..............3-16
  94.           Figure 3.5    Physical, Logical, and Virtual Address Mappings  
  95.             3-22
  96.           Figure 3.6    Getting an Adapter Object...............3-24
  97.           Figure 3.7    Allocating the System DMA Controller....3-30
  98.           Figure 3.8    Programming the System DMA Controller...3-32
  99.           Figure 3.9    Allocating a Common Buffer for System DMA3-34
  100.           Figure 3.10    Allocating an Adapter Object for Busmaster DMA  
  101.             3-40
  102.           Figure 3.11    Setting Up a Logical Range for DMA.....3-44
  103.           Figure 3.12    Allocating a Common Buffer for Busmaster DMA    
  104.             3-46
  105.           Figure 3.13    Controller Object......................3-50
  106.           Figure 3.14   Allocating a Controller Object for I/O..3-52
  107.           Figure 3.15    Getting a System Vector and IRQL.......3-55
  108.           Figure 3.16    Setting Up Interrupt Objects...........3-56
  109.           Figure 3.17    Using a DPC Object for a DpcForIsr Routine3-60
  110.           Figure 3.18    Using a DPC Object for a CustomDpc Routine3-62
  111.           Figure 3.19    Using a Timer Object for an IoTimer Routine     
  112.             3-66
  113.           Figure 3.20    Using Timer and DPC Objects for a
  114.             CustomTimerDpc Routine..............................3-68
  115.           Figure 3.21    Using a Device Queue Object............3-72
  116.           Figure 3.22    Using an Interlocked Queue.............3-74
  117.           Figure 3.23    Waiting on a Timer Object..............3-78
  118.           Figure 3.24    Waiting on an Event Object.............3-80
  119.           Figure 3.25    Waiting on a Semaphore Object..........3-84
  120.           Figure 3.26    Waiting on a Mutex Object..............3-88
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.